import Config from './localConfig';
import Msg from './msg';

/**
 * 公共函数
 */
export default {
    /**
     * 
     * @param {Array} commentData 列表数据
     * @returns {Array} 
     */
    getComment(commentData, dataArr = []) {
        commentData.forEach((v) => {
            if (v.parent_comment_id == 0) {
                (dataArr[0] || (dataArr[0] = [])).push(v);
            } else {
                (
                    dataArr[v.parent_comment_id] ||
                    (dataArr[v.parent_comment_id] = [])
                ).push(v);
            }
        });

        return dataArr;
    },

    /**
    * 处理children数据结构的菜单数据
    * @param {array} menuData 表格数据
    * @param {array} arr 空数组，用于存值
    * @return {array}
    */
    getChildrenTree(dataArr, arr) {

        for (let i in arr) {
            // 如果查找的子类存在就遍历
            let pidArr = dataArr[arr[i].id];

            if (pidArr != undefined) {
                for (let j in pidArr) {

                    (arr[i].childrens || (arr[i].childrens = [])).push(
                        pidArr[j]
                    );
                }

                let getChildrens = this.getChildrenTree(
                    dataArr,
                    arr[i].childrens
                );

                arr[i].childrens = getChildrens;
            }

        }

        return arr;
    },

    /**
    * 验证图片
    * @param {file} file # 文件大小是字节(b)
    * @return {string}
    */
    validateImg(file) {
        // 验证图片格式和大小
        const isFileType = Config.upload.img.type.indexOf(file.type) == -1 ? false : true;

        // 需要把上传图片的size（B）转换成KB 再把配置文件的MB转换成KB
        const isFileSize = file.size / 1024 < Config.upload.img.size * 1024;

        return new Promise((resolve, reject) => {
            if (!isFileType) {
                Msg.error(`只支持${Config.upload.image.typeStr}格式`);
                resolve(false);
            }

            if (!isFileSize) {
                Msg.error(`文件大小不能超过${Config.upload.image.size}MB`);
                resolve(false);
            }

            // 获取base64图片数据
            const reader = new FileReader();
            reader.readAsDataURL(file);

            reader.onload = () => {
                // reader.result;
                resolve(true);
            };
        });
    },

    /**
     * 拼接上传图片路径，适应开发、生产环境
     * @param {file} file
     * @return {file}
     */
    splicingImageUrl(url) {
        if (url == '') {
            return '';
        } else if (url.indexOf('http://') >= 0 || url.indexOf('https://') >= 0) {
            return url;
        } else {
            return Config.baseURL + url;
        }
    },
}